package com.zb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zb.entity.ZjWorkFieldVal;
import com.zb.extend.WorkFieldValExtend;
import com.zb.vo.WorkDetailFieldParamVo;
import com.zb.vo.WorkFieldValVo;

import java.util.Collection;
import java.util.List;

/**
 * <p>
 * 工单字段值表 服务类
 * </p>
 *
 * @author WEN
 * @since 2023-10-12
 */
public interface ZjWorkFieldValService extends IService<ZjWorkFieldVal> {

    /**
     * 保存、修改工单自定义字段
     * @param custAccId 商家ID
     * @param workId 工单ID
     * @param workFieldVal 自定义字段
     */
    void save(Long custAccId, Long workId, List<WorkFieldValVo> workFieldVal);

    /**
     * 根据工单模块字段ID查询关联的工单字段ID
     * @param moduleFieldIds
     * @return
     */
    List<Long> getRealtionWorkFieldIdByModuleFieldIds(List<Long> moduleFieldIds);

    /**
     * 根据工单ID获取工单字段参数
     * @param workId 工单ID
     * @return
     */
    List<WorkDetailFieldParamVo> getOrderFieldParam(Long workId);

    /**
     * 根据工单字段ID & 工单列表搜索字段值获取工单ID
     * @param fieldId 工单字段ID
     * @param fieldSearch 搜索的值
     * @return
     */
    List<Long> getWorkIdsByWorkFieldIdAndVal(Long fieldId, String fieldSearch);

    /**
     * 根据模块ID获取工单列表显示的工单自定义字段
     * @param moduleIds 模块ID
     * @return
     */
    List<ZjWorkFieldVal> getOrderListShowFieldByModuleIds(List<Long> moduleIds);

    /**
     * 根据工单ID获取工单自定义字段导出数据
     * @param workIds 工单ID
     * @return
     */
    List<WorkFieldValExtend> getOrderCustomFieldExportDataByWorkIds(List<Long> workIds);

    /**
     * 根据工单ID删除工单自定义字段
     * @param workId 工单ID
     */
    void deleteByWorkId(Long workId);
}
